<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title>高质量宇宙级开源软件系统</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="format-detection" content="telephone=no">

  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
  <meta http-equiv="Pragma" content="no-cache">
  <meta http-equiv="Expires" content="0">

  <link rel="stylesheet" href="layui/css/layui.css"/>
  <style>
    /* 移动端 */
    @media screen and (max-width: 768px) {
      .layui-layout-admin .layui-layout-left,
      .layui-layout-admin .layui-body,
      .layui-layout-admin .layui-footer{left: 0;}
      .layui-layout-admin .layui-side{left: -300px;}
    }
  </style>
</head>
<body>

<div class="layui-layout layui-layout-admin">
  <div class="layui-header">
    <div class="layui-logo layui-hide-xs layui-bg-black">宇宙级开源软件系统</div>
    <!-- 头部区域（可配合layui 已有的水平导航） -->
    <ul class="layui-nav layui-layout-left">
      <!-- 移动端显示 -->
      <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
        <i class="layui-icon layui-icon-spread-left"></i>
      </li>

      <li class="layui-nav-item layui-hide-xs"><a href="">集群式系统</a></li>
      <li class="layui-nav-item layui-hide-xs"><a href="">负载均衡系统</a></li>
      <li class="layui-nav-item layui-hide-xs"><a href="">分布式网络系统</a></li>
      <li class="layui-nav-item">
        <a href="javascript:;">日志服务系统</a>
        <dl class="layui-nav-child">
          <dd><a href="">分布式日志服务01</a></dd>
          <dd><a href="">分布式日志服务02</a></dd>
          <dd><a href="">分布式日志服务03</a></dd>
        </dl>
      </li>


    </ul>
    <ul class="layui-nav layui-layout-right">
      <li class="layui-nav-item layui-hide layui-show-md-inline-block">
        <a href="javascript:;">
          <img src="img/hongqi.png" class="layui-nav-img">
          超级管理员
        </a>
        <dl class="layui-nav-child">
          <dd><a href="">个人信息</a></dd>
          <dd><a href="/logout">退出</a></dd>
        </dl>
      </li>
      <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
        <a href="javascript:;">
          <i class="layui-icon layui-icon-more-vertical"></i>
        </a>
      </li>
    </ul>
  </div>

  <div class="layui-side layui-bg-black">
    <div class="layui-side-scroll">
      <!-- 左侧导航区域（可配合layui已有的垂直导航） -->
      <ul class="layui-nav layui-nav-tree" lay-filter="test">
        <li class="layui-nav-item layui-nav-itemed">
          <a class="" href="javascript:;">用户管理模块</a>
          <dl class="layui-nav-child">
            <dd class="layui-this"><a href="userdata.html">用户数据管理</a></dd>
            <dd><a href="usergroup.html">用户分组管理</a></dd>
            <dd><a href="javascript:;">用户统计管理</a></dd>
          </dl>
        </li>
        <li class="layui-nav-item layui-nav-itemed">
          <a href="javascript:;">订单管理模块</a>
          <dl class="layui-nav-child">
            <dd><a href="javascript:;">订单数据管理</a></dd>
            <dd><a href="javascript:;">收银订单管理</a></dd>
            <dd><a href="javascript:;">积分订单管理</a></dd>
          </dl>
        </li>
        <li class="layui-nav-item layui-nav-itemed">
          <a href="javascript:;">商品管理模块</a>
          <dl class="layui-nav-child">
            <dd><a href="javascript:;">商品数据管理</a></dd>
            <dd><a href="javascript:;">商品分裂管理</a></dd>
            <dd><a href="javascript:;">商品规格管理</a></dd>
          </dl>
        </li>
      </ul>
    </div>
  </div>

  <div class="layui-body">
    <!-- 内容主体区域 -->
    <div style="padding: 15px;">

      <!-- 内容主体区域  面包屑-->
      <span class="layui-breadcrumb">
        <a href="index.html">首页</a>
        <a><cite>用户管理模块</cite></a>
        <a><cite>用户数据管理</cite></a>
      </span>

      <!-- 水平线 -->
      <hr class="layui-bg-blue">

      <!-- 搜索条件 -->
      <fieldset class="layui-elem-field">
        <legend>筛选条件</legend>
        <div class="layui-field-box">
          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">用户名</label>
            <div class="layui-input-inline">
              <input type="text" id="search_username" placeholder="请输入用户名" class="layui-input">
            </div>

            <label class="layui-form-label">年龄</label>
            <div class="layui-input-inline">
              <input type="text" id="search_age" placeholder="请输入年龄" class="layui-input">
            </div>
          </div>

          <div class="layui-form-item layui-form-pane">
            <div class="layui-inline">
              <button class="layui-btn layui-btn-radius layui-btn-warm" id="iReset">重置</button>
              <button class="layui-btn layui-btn-radius layui-btn-normal" id="searchVal">搜索</button>
            </div>
          </div>
        </div>
      </fieldset>


      <table class="layui-hide" id="test" lay-filter="test"></table>

      <script type="text/html" id="insert_form">
        <div class="layui-field-box">
          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">用户名</label>
            <div class="layui-input-inline">
              <input type="text" id="insert_username" class="layui-input" placeholder="请输入用户名">
            </div>
          </div>

          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">密码</label>
            <div class="layui-input-inline">
              <input type="text" id="insert_password" class="layui-input" placeholder="请输入密码">
            </div>
          </div>
        </div>
      </script>

      <script type="text/html" id="update_form">
        <div class="layui-field-box">
          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">用户名</label>
            <div class="layui-input-inline">
              <input type="text" id="update_username" class="layui-input" readonly>
            </div>
          </div>

          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">年龄</label>
            <div class="layui-input-inline">
              <input type="text" id="update_age" class="layui-input" placeholder="请输入年龄">
            </div>
          </div>

          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">最后登录时间</label>
            <div class="layui-input-inline">
              <input type="text" id="update_last_login_time" class="layui-input" readonly>
            </div>
          </div>

          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">账号创建日期</label>
            <div class="layui-input-inline">
              <input type="text" id="update_create_time" class="layui-input" readonly>
            </div>
          </div>
        </div>
      </script>

      <script type="text/html" id="toolbarDemo">
        <div class="layui-btn-container">
          <button class="layui-btn layui-btn-sm" lay-event="insertUser">新增用户</button>
          <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
          <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
          <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
        </div>
      </script>

      <script type="text/html" id="barDemo">
        <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
      </script>


    </div>
  </div>

  <div class="layui-footer">
    <!-- 底部固定区域 -->
    @CopyRight 2020-2025  www.xly.com  超神Java
  </div>
</div>
<script src="layui/layui.js"></script>
<script src="jquery/jquery-3.6.0.js"></script>
<script>

  $("#iReset").click(function () {   // 重置操作
      $("#search_username").val("");
      $("#search_age").val("");
      let jsonObj = {};
      tableflush(jsonObj);
  });

  $("#searchVal").click(function () {   // 条件查询
    let username = $("#search_username").val();
    let age = $("#search_age").val();
    let jsonObj = {};
    if(username != null & username != '') {
      jsonObj.username = username;                // JS中的独有的动态json属性追加操作
    }
    if(age != null & age != '') {
      jsonObj.age = age;                          // JS中的独有的动态json属性追加操作
    }
    tableflush(jsonObj);
  });
  
  function tableflush(jsonObj) {
    layui.use('table', function(){
      var table = layui.table;

      table.render({
        elem: '#test'
        ,url:'user/selectByPage'/*tpa=http://www.layui.com/test/table/demo1.json*/
        ,toolbar: '#toolbarDemo' //开启头部工具栏，并为其绑定左侧模板
        ,where: jsonObj          // 条件查询处理，jsonObj是一个标准的json对象
        ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
          title: '提示'
          ,layEvent: 'LAYTABLE_TIPS'
          ,icon: 'layui-icon-tips'
        }]
        ,title: '用户数据表'
        ,cols: [[
          {type: 'checkbox', fixed: 'left'}
          ,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true}
          ,{field:'username', title:'用户名', width:150, unresize: true}
          ,{field:'password', title:'密码', width:300, unresize: true, templet: function(res){
              return '<em>'+ res.password +'</em>'
            }}
          ,{field:'age', title:'年龄', width:80, unresize: true}
          ,{field:'lastLoginTime', title:'最后登录时间', width:220}
          ,{field:'createTime', title:'创建时间', width:220}
          ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:120}
        ]]
        ,page: true
      });

      /*
      "id": 2,
        "username": "gxa02",
        "password": "654321",
        "age": 19,
        "lastLoginTime": "2023-07-17T09:01:46.000+00:00",
        "createTime": "2023-07-17T09:01:48.000+00:00"
       */

      //头工具栏事件
      table.on('toolbar(test)', function(obj){
        var checkStatus = table.checkStatus(obj.config.id);
        switch(obj.event){
          case 'insertUser':
            layer.open({     // 弹出框处理  模态框
              type: 1               // 模态框
              ,title: '新增用户' //不显示标题栏
              ,closeBtn: false
              ,area: ['500px','500px']  // 宽和高
              ,shade: 0.5
              ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
              ,btn: ['新增', '取消']
              ,btnAlign: 'c'
              ,moveType: 1 //拖拽模式，0或者1
              ,content: $('#insert_form').html()         // 引入自定义表单
              ,btn1: function(index, layero){            // 这个是新增按钮点击事件
                // layer.msg("新增按钮执行");
                let username = $("#insert_username").val();
                let password = $("#insert_password").val();
                $.ajax({
                  url:"/user/insert",           // 请求路径
                  type:"post",                  // 请求的方式，不区分大小写
                  cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                  contentType:"application/json;charset=utf-8",
                  data: JSON.stringify({
                    username:username,
                    password:password
                  }),
                  datatype:"json",        // 返回类型，text文本、html页面、json数据
                  success:function(response){
                    console.log("返回: " + response);
                    if(response.code === 200) {
                      layer.msg("新增用户成功!");
                      layer.close(index);                         // 关闭当前窗口
                      tableflush();
                    }
                  },
                  error:function(response){
                    console.log("出错返回: " + response);
                  }
                });
              }
              ,success: function(layero){

              }
            });
            break;
          case 'getCheckData':
            var data = checkStatus.data;
            layer.alert(JSON.stringify(data));
            break;
          case 'getCheckLength':
            var data = checkStatus.data;
            layer.msg('选中了：'+ data.length + ' 个');
            break;
          case 'isAll':
            layer.msg(checkStatus.isAll ? '全选': '未全选');
            break;

                //自定义头工具栏右侧图标 - 提示
          case 'LAYTABLE_TIPS':
            layer.alert('这是工具栏右侧自定义的一个图标按钮');
            break;
        };
      });

      //监听行工具事件
      table.on('tool(test)', function(obj){
        var data = obj.data;
        //console.log(obj)
        if(obj.event === 'del'){
          layer.confirm('真的删除行么', function(index){
            $.ajax({
              url:"/user/deleteById",           // 请求路径
              type:"post",                  // 请求的方式，不区分大小写
              cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
              data: {
                id:data.id
              },
              datatype:"json",        // 返回类型，text文本、html页面、json数据
              success:function(response){
                console.log("返回: " + response);
                if(response.code === 200) {
                  layer.msg("删除用户成功!");
                  layer.close(index);                         // 关闭当前窗口
                  tableflush();
                }
              },
              error:function(response){
                console.log("出错返回: " + response);
              }
            });
          });
        } else if(obj.event === 'edit'){
          layer.open({     // 弹出框处理  模态框
            type: 1               // 模态框
            ,title: '更新用户' //不显示标题栏
            ,closeBtn: false
            ,area: ['500px','500px']  // 宽和高
            ,shade: 0.5
            ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
            ,btn: ['更新', '取消']
            ,btnAlign: 'c'
            ,moveType: 1 //拖拽模式，0或者1
            ,content: $('#update_form').html()         // 引入自定义表单
            ,btn1: function(index, layero){            // 这个是新增按钮点击事件
              let age = $("#update_age").val();
              $.ajax({
                url:"/user/updateById",           // 请求路径
                type:"post",                  // 请求的方式，不区分大小写
                cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                data: {
                  age:age,
                  id:data.id
                },
                datatype:"json",        // 返回类型，text文本、html页面、json数据
                success:function(response){
                  console.log("返回: " + response);
                  if(response.code === 200) {
                    layer.msg("更新用户成功!");
                    layer.close(index);                         // 关闭当前窗口
                    tableflush();
                  }
                },
                error:function(response){
                  console.log("出错返回: " + response);
                }
              });
            }
            ,success: function(layero){   // 当弹出框再还未弹出时，完成的初始化工作
              $("#update_username").val(data.username);
              $("#update_age").val(data.age);
              $("#update_last_login_time").val(data.lastLoginTime);
              $("#update_create_time").val(data.createTime);
            }
          });
        }
      });
    });
  }

  tableflush();
</script>

</body>
</html>
